[INFO] fetching crate gemachain-vote-program 1.8.2...
[INFO] fixing gemachain-vote-program-1.8.2 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate gemachain-vote-program 1.8.2 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate gemachain-vote-program 1.8.2
[INFO] finished tweaking crates.io crate gemachain-vote-program 1.8.2
[INFO] tweaked toml for crates.io crate gemachain-vote-program 1.8.2 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gemachain-vote-program 1.8.2 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 275 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v3.0.0)
[INFO] [stderr]       Adding num-derive v0.3.3 (available: v0.4.2)
[INFO] [stderr]       Adding subtle v2.4.1 (available: v2.6.1)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.18)
[INFO] [stderr]       Adding zeroize v1.3.0 (available: v1.9.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238
[INFO] running `Command { std: "docker" "start" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking subtle v2.4.1
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking block-padding v0.2.1
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking object v0.37.3
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]    Compiling gemachain-frozen-abi-macro v1.8.2
[INFO] [stderr]     Checking unicode-xid v0.1.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking cmov v0.5.4
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking zeroize v1.3.0
[INFO] [stderr]     Checking ctutils v0.4.2
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]     Checking hybrid-array v0.4.12
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling gemachain-frozen-abi v1.8.2
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking quote v0.6.13
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking jobserver v0.1.34
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]    Compiling gemachain-program v1.8.2
[INFO] [stderr]     Checking arrayvec v0.7.7
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]    Compiling bs58 v0.4.0
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking cc v1.2.65
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling gemachain-sdk v1.8.2
[INFO] [stderr]     Checking gemachain-logger v1.8.2
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.9.3
[INFO] [stderr]    Compiling borsh-derive-internal v0.9.3
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking curve25519-dalek v3.2.1
[INFO] [stderr]     Checking crypto-mac v0.11.1
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]     Checking crypto-mac v0.9.1
[INFO] [stderr]     Checking sha3 v0.9.1
[INFO] [stderr]     Checking hmac v0.9.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking pbkdf2 v0.9.0
[INFO] [stderr]     Checking hmac v0.11.0
[INFO] [stderr]     Checking uriparse v0.6.4
[INFO] [stderr]     Checking qstring v0.7.2
[INFO] [stderr]     Checking assert_matches v1.5.0
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]    Compiling gemachain-vote-program v1.8.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating build.rs from 2018 edition to 2021
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling borsh-derive v0.9.3
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling gemachain-sdk-macro v1.8.2
[INFO] [stderr]     Checking borsh v0.9.3
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking derivation-path v0.1.3
[INFO] [stderr]     Checking ed25519-dalek-bip32 v0.1.1
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking gemachain-crate-features v1.8.2
[INFO] [stderr]     Checking gemachain-metrics v1.8.2
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.20s
[INFO] [stderr] crater-edition-check: gemachain-vote-program v1.8.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling gemachain-vote-program v1.8.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition name: `RUSTC_WITH_SPECIALIZATION`
[INFO] [stdout]  --> src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(min_specialization))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(RUSTC_WITH_SPECIALIZATION)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(RUSTC_WITH_SPECIALIZATION)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     /// the signer for withdrawals
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |                     authorized_withdrawer: state.authorized_withdrawer,
[INFO] [stdout]    |                     -------------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | /                     /// percentage (0-100) that represents what part of a rewards
[INFO] [stdout] 28 | |                     ///  payout should be given to this VoteAccount
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 29 |                       commission: state.commission,
[INFO] [stdout]    |                       ---------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     /// the signer for vote transactions
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |                     authorized_voters,
[INFO] [stdout]    |                     ----------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | /                     /// history of prior authorized voters and the epochs for which
[INFO] [stdout] 39 | |                     /// they were set, the bottom end of the range is inclusive,
[INFO] [stdout] 40 | |                     /// the top of the range is exclusive
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout] 41 |                       prior_voters: CircBuf::default(),
[INFO] [stdout]    |                       -------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | /                     /// history of how many credits earned by the end of each epoch
[INFO] [stdout] 44 | |                     ///  each tuple is (Epoch, credits, prev_credits)
[INFO] [stdout]    | |_____________________________________________________________________^
[INFO] [stdout] 45 |                       epoch_credits: state.epoch_credits.clone(),
[INFO] [stdout]    |                       ------------------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     /// most recent timestamp submitted with a vote
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |                     last_timestamp: state.last_timestamp.clone(),
[INFO] [stdout]    |                     -------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `RUSTC_WITH_SPECIALIZATION`
[INFO] [stdout]  --> src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(min_specialization))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(RUSTC_WITH_SPECIALIZATION)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(RUSTC_WITH_SPECIALIZATION)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     /// the signer for withdrawals
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |                     authorized_withdrawer: state.authorized_withdrawer,
[INFO] [stdout]    |                     -------------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | /                     /// percentage (0-100) that represents what part of a rewards
[INFO] [stdout] 28 | |                     ///  payout should be given to this VoteAccount
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 29 |                       commission: state.commission,
[INFO] [stdout]    |                       ---------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     /// the signer for vote transactions
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |                     authorized_voters,
[INFO] [stdout]    |                     ----------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | /                     /// history of prior authorized voters and the epochs for which
[INFO] [stdout] 39 | |                     /// they were set, the bottom end of the range is inclusive,
[INFO] [stdout] 40 | |                     /// the top of the range is exclusive
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout] 41 |                       prior_voters: CircBuf::default(),
[INFO] [stdout]    |                       -------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | /                     /// history of how many credits earned by the end of each epoch
[INFO] [stdout] 44 | |                     ///  each tuple is (Epoch, credits, prev_credits)
[INFO] [stdout]    | |_____________________________________________________________________^
[INFO] [stdout] 45 |                       epoch_credits: state.epoch_credits.clone(),
[INFO] [stdout]    |                       ------------------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     /// most recent timestamp submitted with a vote
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |                     last_timestamp: state.last_timestamp.clone(),
[INFO] [stdout]    |                     -------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/authorized_voters.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<Epoch, Pubkey> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<'_, Epoch, Pubkey> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:42
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                          ^------------
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          `FromPrimitive` is not local
[INFO] [stdout]    |                                          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:57
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/authorized_voters.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<Epoch, Pubkey> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<'_, Epoch, Pubkey> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:42
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                          ^------------
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          `FromPrimitive` is not local
[INFO] [stdout]    |                                          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:57
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.19s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking gemachain-vote-program v1.8.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.74s
[INFO] [stderr] crater-edition-check: gemachain-vote-program v1.8.2 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling gemachain-vote-program v1.8.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition name: `RUSTC_WITH_SPECIALIZATION`
[INFO] [stdout]  --> src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(min_specialization))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(RUSTC_WITH_SPECIALIZATION)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(RUSTC_WITH_SPECIALIZATION)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     /// the signer for withdrawals
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |                     authorized_withdrawer: state.authorized_withdrawer,
[INFO] [stdout]    |                     -------------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | /                     /// percentage (0-100) that represents what part of a rewards
[INFO] [stdout] 28 | |                     ///  payout should be given to this VoteAccount
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 29 |                       commission: state.commission,
[INFO] [stdout]    |                       ---------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     /// the signer for vote transactions
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |                     authorized_voters,
[INFO] [stdout]    |                     ----------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | /                     /// history of prior authorized voters and the epochs for which
[INFO] [stdout] 39 | |                     /// they were set, the bottom end of the range is inclusive,
[INFO] [stdout] 40 | |                     /// the top of the range is exclusive
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout] 41 |                       prior_voters: CircBuf::default(),
[INFO] [stdout]    |                       -------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | /                     /// history of how many credits earned by the end of each epoch
[INFO] [stdout] 44 | |                     ///  each tuple is (Epoch, credits, prev_credits)
[INFO] [stdout]    | |_____________________________________________________________________^
[INFO] [stdout] 45 |                       epoch_credits: state.epoch_credits.clone(),
[INFO] [stdout]    |                       ------------------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     /// most recent timestamp submitted with a vote
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |                     last_timestamp: state.last_timestamp.clone(),
[INFO] [stdout]    |                     -------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `RUSTC_WITH_SPECIALIZATION`
[INFO] [stdout]  --> src/lib.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![cfg_attr(RUSTC_WITH_SPECIALIZATION, feature(min_specialization))]
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: expected names are: `docsrs`, `feature`, and `test` and 32 more
[INFO] [stdout]   = help: consider using a Cargo feature instead
[INFO] [stdout]   = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]            [lints.rust]
[INFO] [stdout]            unexpected_cfgs = { level = "warn", check-cfg = ['cfg(RUSTC_WITH_SPECIALIZATION)'] }
[INFO] [stdout]   = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(RUSTC_WITH_SPECIALIZATION)");` to the top of the `build.rs`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     /// the signer for withdrawals
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |                     authorized_withdrawer: state.authorized_withdrawer,
[INFO] [stdout]    |                     -------------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | /                     /// percentage (0-100) that represents what part of a rewards
[INFO] [stdout] 28 | |                     ///  payout should be given to this VoteAccount
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 29 |                       commission: state.commission,
[INFO] [stdout]    |                       ---------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     /// the signer for vote transactions
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |                     authorized_voters,
[INFO] [stdout]    |                     ----------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | /                     /// history of prior authorized voters and the epochs for which
[INFO] [stdout] 39 | |                     /// they were set, the bottom end of the range is inclusive,
[INFO] [stdout] 40 | |                     /// the top of the range is exclusive
[INFO] [stdout]    | |_________________________________________________________^
[INFO] [stdout] 41 |                       prior_voters: CircBuf::default(),
[INFO] [stdout]    |                       -------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | /                     /// history of how many credits earned by the end of each epoch
[INFO] [stdout] 44 | |                     ///  each tuple is (Epoch, credits, prev_credits)
[INFO] [stdout]    | |_____________________________________________________________________^
[INFO] [stdout] 45 |                       epoch_credits: state.epoch_credits.clone(),
[INFO] [stdout]    |                       ------------------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/vote_state/vote_state_versions.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     /// most recent timestamp submitted with a vote
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |                     last_timestamp: state.last_timestamp.clone(),
[INFO] [stdout]    |                     -------------------------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/authorized_voters.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<Epoch, Pubkey> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<'_, Epoch, Pubkey> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:42
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                          ^------------
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          `FromPrimitive` is not local
[INFO] [stdout]    |                                          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:57
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/authorized_voters.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<Epoch, Pubkey> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn iter(&self) -> std::collections::btree_map::Iter<'_, Epoch, Pubkey> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:42
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                          ^------------
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          `FromPrimitive` is not local
[INFO] [stdout]    |                                          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/vote_instruction.rs:28:57
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Error, Debug, Clone, PartialEq, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                         ^----------
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         `ToPrimitive` is not local
[INFO] [stdout]    |                                                         move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_VoteError`
[INFO] [stdout] 29 | pub enum VoteError {
[INFO] [stdout]    |          --------- `VoteError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.69s
[INFO] [stderr] crater-edition-check all packages now at latest edition
[INFO] [stderr] crater-edition-check: all finished
[INFO] running `Command { std: "docker" "inspect" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238", kill_on_drop: false }`
[INFO] [stdout] 22a7b3b6451f1e9c1837899e02270590d9145d2d81e4e7927104b29b5370e238
